Content Delivery Networks (CDN) are increasingly used to distribute content, such as videos, multimedia, images, audio files, documents, software, and other electronic resources, to end users on behalf of one or more content providers. Using a CDN allows the content providers to increase the speed and reliability of content delivery without deploying additional infrastructure. Moreover, the end users obtain the content with fewer delays. However, many CDNs are generally not configured to efficiently deliver content in a mobile environment, particularly as a user changes locations or networks while consuming the content.
In the past, users tended to consume higher quality, larger sized content (e.g., a movie) primarily via an access network, for example, using a wifi access point. In general, user devices are configured to prefer using the access network over a cellular network, where available, for data exchange to decrease capacity on cellular networks. However, as portable user devices, such as phones and tablets, have become capable of consuming higher quality content, users have come to expect content to be readily available outside of wifi access points.
Many CDN infrastructures include an access network having a CDN component that delivers content to a user device, for example, via a wifi access point. However, users may change location or networks while consuming the content. For example, a user may begin watching a video using the access network (e.g., a wifi hotspot) and disconnect from the access network while continuing to watch the video. In doing so, the user device may become connected to a cellular network. Because the user began watching the video via the access network, the session is pinned to a server based on the location and network policies of the access network, which may no longer be the optimal server from which to serve the content due to the network change.
Stated differently, to begin consuming on-demand and live video, audio, or other media streaming, the user device fetches a manifest file, which generally includes a uniform resource locator (URL) or a sequence of uniform resource identifiers (URIs) that identifies the locations of consecutive segmented media files of the stream. The server from which the segments are served is determined based on the location of the user device using various policies implemented by the CDN. If the user device retrieves the manifest file using the access network, the server from which the segments are served is determined based, at least in part, on the location of the access network.
The user device downloads the segmented media files identified in the manifest file and presents the stream to the user. Because the user device is in the process of presenting the stream to the user, when the user disconnects from the access network and connects to another network, such as a cellular network, the user device does not re-fetch the manifest file. Accordingly, even though the network has changed, the CDN continues to direct the user device to retrieve the media segments from the original server designated based on the location of the access network, which may no longer be the optimal location from which to respond to requests from the user device.
It is with these observations in mind, among others, that various aspects of the present disclosure were conceived and developed.